home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 2, No. 02 (1982-10)(Softdisk)(Side B).zip / Softdisk Magazette Volume 2, No. 02 (1982-10)(Softdisk)(Side B).do / QUIZ MACHINE.bas < prev    next >
BASIC Source File  |  1996-12-24  |  8KB  |  254 lines

  1. 10  REM 
  2. 20  REM 
  3. 30  REM 
  4. 40  REM         QUIZ MACHINE
  5. 50  REM 
  6. 60  REM              BY
  7. 70  REM 
  8. 80  REM        SAMUEL  CHIANG
  9. 90  REM 
  10. 100  REM 
  11. 110  REM            WITH
  12. 120  REM      
  13. 130  REM         ASSISTANCE
  14. 140  REM 
  15. 150  REM            FROM
  16. 160  REM 
  17. 170  REM       ANTHONY CHIANG
  18. 180  REM 
  19. 190  REM 
  20. 200  REM 
  21. 210  REM 
  22. 220  ONERR  GOTO 240
  23. 230  DIM T$(6,20),F$(5),R$(5)
  24. 240  HOME 
  25. 250  VTAB 2: HTAB 11: INVERSE : PRINT " * QUIZ MACHINE * ": NORMAL 
  26. 260  VTAB 6: HTAB 12: PRINT "1)  QUIZ TAKER"
  27. 270  VTAB 8: HTAB 12: PRINT "2)  QUIZ MAKER"
  28. 280  VTAB 10: HTAB 12: PRINT "3)  EDIT"
  29. 290  VTAB 12: HTAB 12: PRINT "4)  CATALOG"
  30. 300  VTAB 14: HTAB 12: PRINT "5)  INSTRUCTIONS"
  31. 310  VTAB 16: HTAB 12: PRINT "6)  QUIT"
  32. 320  VTAB 19: HTAB 7: PRINT "CHOOSE ONE";: GET E
  33. 330  IF E >6  OR E <1  THEN 240
  34. 340  ON E GOTO 450,990,1690,360,1510,420
  35. 350  GOTO 240
  36. 360  HOME 
  37. 370  PRINT : PRINT  CHR$(4);"CATALOG"
  38. 380  INVERSE 
  39. 390  PRINT "PRESS ANY KEY TO CONTINUE ";: GET E$
  40. 400  NORMAL 
  41. 410  GOTO 240
  42. 420  HOME 
  43. 430  VTAB 11: HTAB 16: PRINT "FIAT LUX"
  44. 440  END 
  45. 450  HOME 
  46. 455  PRINT "SPORTS   AND    ENTERTAINMENT"
  47. 456  PRINT : PRINT "ARE QUIZES ON SOFTDISK": PRINT 
  48. 460  PRINT "ENTER THE QUIZ YOU WANT TO TAKE ";: INPUT Q$
  49. 470  GOSUB 2090
  50. 480  VTAB 22: PRINT "PRESS ANY KEY AND THE QUIZ WILL BEGIN.";: GET X$
  51. 490  FOR I = 1 TO 20
  52. 495  POKE  -16368,0
  53. 500  HOME 
  54. 510 X = 500
  55. 520  PRINT 
  56. 530  HTAB 5: PRINT "TIME";: HTAB 30: PRINT "POINTS"
  57. 540  HTAB 5: PRINT X;: HTAB 30: PRINT P
  58. 550  GOSUB 2220
  59. 560 A$ = ""
  60. 570 A =  PEEK( -16384)
  61. 580  IF A >127  THEN 640
  62. 590 X = X -1
  63. 600  IF X < = 0  THEN 780
  64. 610  VTAB 3: HTAB 5: PRINT "    "
  65. 620  VTAB 3: HTAB 5: PRINT X
  66. 630  GOTO 560
  67. 640  POKE  -16368,0:A$ =  CHR$(A -128)
  68. 650  IF A$ = "1"  OR A$ = "2"  OR A$ = "3"  OR A$ = "4"  THEN 670
  69. 660  GOTO 560
  70. 670  IF T$(6,I) = A$  THEN 730
  71. 680  VTAB 5: HTAB 15: PRINT "WRONG"
  72. 690  FOR L = 1 TO 50:Y =  PEEK( -16336): NEXT L
  73. 700  VTAB 5: HTAB 15: PRINT "     "
  74. 710 X = X -200
  75. 720  GOTO 560
  76. 730  VTAB 5: HTAB 15: PRINT "RIGHT"
  77. 740  PRINT  CHR$(7); CHR$(7)
  78. 750  HTAB 15: PRINT "YOU GET ";X;" POINTS"
  79. 760 P = P +X
  80. 770  GOTO 840
  81. 780  VTAB 3: HTAB 5: PRINT "    "
  82. 790  VTAB 5: HTAB 12: PRINT "YOUR TIME RAN OUT"
  83. 800  VTAB 6: HTAB 15: PRINT "ANSWER - ";T$(6,I)
  84. 810  FOR O = 1 TO 100
  85. 820 X =  PEEK( -16336)
  86. 830  NEXT O
  87. 840  FOR M = 1 TO 3500
  88. 850  NEXT M
  89. 860  NEXT I
  90. 870  HOME 
  91. 880  VTAB 4: HTAB 10: PRINT "YOU FINAL SCORE IS "
  92. 890  PRINT : HTAB 18: PRINT P
  93. 900  PRINT : PRINT : PRINT 
  94. 910  IF P > = 8000  THEN  PRINT F$(1): GOTO 960
  95. 920  IF P > = 6000  THEN  PRINT F$(2): GOTO 960
  96. 930  IF P > = 4000  THEN  PRINT F$(3): GOTO 960
  97. 940  IF P > = 3000  THEN  PRINT F$(4): GOTO 960
  98. 950  PRINT F$(5)
  99. 960  VTAB 23: INVERSE : PRINT "HIT ANY KEY TO CONTINUE": NORMAL 
  100. 970  GET XX$
  101. 980  CLEAR : GOTO 230
  102. 990  HOME 
  103. 1000  PRINT "WHAT DO YOU WANT TO NAME YOUR QUIZ ";: INPUT Q$
  104. 1010  FOR I = 1 TO 20
  105. 1020  HOME 
  106. 1030  PRINT "ENTER QUESTION #";I;" ";: INPUT T$(1,I)
  107. 1040  FOR J = 2 TO 5
  108. 1050  PRINT 
  109. 1060  PRINT "ENTER ANSWER #";J -1;" ";: INPUT T$(J,I)
  110. 1070  NEXT J
  111. 1080  PRINT 
  112. 1090  PRINT "ENTER THE NUMBER CORRESPONDING TO THE   CORRECT ANSWER ";
  113. 1100  INPUT T$(6,I)
  114. 1110  IF T$(6,I) = "1"  OR T$(6,I) = "2"  OR T$(6,I) = "3"  OR T$(6,I) = "4"  THEN 1130
  115. 1120  VTAB 11: PRINT "                                                                                                                       ": VTAB 11: GOTO 1090
  116. 1130  HOME 
  117. 1140  GOSUB 2220
  118. 1150  PRINT 
  119. 1160  HTAB 10: PRINT "ANSWER - ";T$(6,I)
  120. 1170  VTAB 23: PRINT "IS THE ABOVE CORRECT ";: INPUT X$
  121. 1180  IF  LEFT$(X$,1) = "Y"  THEN 1200
  122. 1190  GOTO 1020
  123. 1200  NEXT I
  124. 1210  FOR N = 1 TO 5
  125. 1220  READ R$(N)
  126. 1230  NEXT N
  127. 1240  DATA  EXCELLENT,VERY GOOD,GOOD,FAIR,POOR
  128. 1250  HOME 
  129. 1260  FOR N = 1 TO 5
  130. 1270  PRINT 
  131. 1280  PRINT "ENTER THE RESPONSE FOR ";
  132. 1290  IF N = 1  THEN  PRINT "AN ";: GOTO 1310
  133. 1300  PRINT "A ";
  134. 1310  PRINT R$(N);" SCORE";: INPUT F$(N)
  135. 1320  NEXT N
  136. 1330  HOME 
  137. 1340  FOR N = 1 TO 5
  138. 1350  PRINT 
  139. 1360  PRINT F$(N)
  140. 1370  NEXT N
  141. 1380  VTAB 23: PRINT "IS THE ABOVE CORRECT ";: INPUT X$
  142. 1390  IF  LEFT$(X$,1) = "Y"  THEN 1410
  143. 1400  GOTO 1250
  144. 1410  HOME 
  145. 1420  VTAB 11: HTAB 5: PRINT "YOUR QUIZ IS NOW BEING SAVED!"
  146. 1430  GOSUB 2400
  147. 1440  HOME 
  148. 1490  VTAB 24: INVERSE : PRINT "HIT ANY KEY TO CONTINUE": NORMAL : GET Z$
  149. 1500  GOTO 240
  150. 1510  HOME 
  151. 1520  HTAB 13: INVERSE : PRINT " INSTRUCTIONS "
  152. 1530  NORMAL 
  153. 1540  VTAB 3: PRINT "QUIZ MACHINE WILL ALLOW YOU TO TAKE,    MAKE OR EDIT A QUIZ CONSISTING OF 20    QUESTIONS. IT ALSO LETS YOU TAKE A      CATALOG TO CHECK WHAT QUIZZES ARE ON    DISK."
  154. 1550  PRINT : PRINT "WHEN CHOOSING A QUIZ TO TAKE OR EDIT,   IF YOU INPUT A NAME OF A QUIZ NOT ON    DISK, THE PROGRAM RETURNS TO THE MENU."
  155. 1570  PRINT : PRINT "WHEN IN THE QUIZ MAKER MODE BE CAREFUL  YOU DO NOT REPEAT A NAME ALREADY ON     DISK. THIS WILL REPLACE THE FIRST QUIZ  WITH THE ONE YOU ARE CREATING. YOU "
  156. 1575  PRINT "SHOULD ALSO WRITE DOWN THE QUESTIONS ON PAPER BEFORE TYPING THEM IN."
  157. 1580  PRINT : PRINT "IF YOU MAKE A MINOR MISTAKE IN THE      MAKING OF A QUIZ, DON'T WORRY.  FINISH  MAKING IT, THEN USE THE EDIT FEATURE."
  158. 1590  VTAB 24: INVERSE : PRINT "HIT ANY KEY TO CONTINUE";: GET XX$
  159. 1600  HOME 
  160. 1610  HTAB 13: PRINT "INSTRUCTIONS": NORMAL 
  161. 1615  PRINT : PRINT 
  162. 1620  PRINT "THE QUIZZES ARE MULTIPLE CHOICE, YOU    WILL USE THE '1','2','3' OR '4' KEYS TO MAKE YOU CHOICE."
  163. 1630  PRINT : PRINT "THE QUIZZES ARE TIMED AND IF YOU CHOOSE THE WRONG ANSWER SOME TIME WILL BE TAKENAWAY."
  164. 1640  PRINT : PRINT "IF YOU HAVE NOT MADE YOUR OWN QUIZZES   THEN YOU CAN TAKE 'SPORTS' OR           'ENTERTAINMENT' JUST TYPE IN THE NAME   WHEN PROMPTED TO."
  165. 1650  PRINT : PRINT "IF AT ANY TIME YOU WANT TO RETURN TO THEMENU, HIT <CTL C> AND <RETURN>. ANY QUIZMAKING OR EDITING WILL NOT BE SAVED     THOUGH."
  166. 1670  VTAB 24: INVERSE : PRINT "HIT ANY KEY TO RETURN TO THE MENU";: GET XX$
  167. 1680  GOTO 240
  168. 1690  HOME 
  169. 1700  PRINT "WHAT QUIZ DO YOU WANT TO EDIT ";: INPUT Q$
  170. 1710  GOSUB 2090
  171. 1720  FOR I = 1 TO 20
  172. 1730  HOME 
  173. 1740  GOSUB 2220
  174. 1750  PRINT 
  175. 1760  HTAB 10: PRINT "ANSWER - ";T$(6,I)
  176. 1770  VTAB 2: PRINT "IS QUESTION #";I;" OK";: INPUT V$
  177. 1780  IF  LEFT$(V$,1) = "Y"  THEN 2030
  178. 1790  HOME 
  179. 1800  GOSUB 2320
  180. 1810  PRINT 
  181. 1820  PRINT "TYPE IN QUESTION OR <RETURN> TO KEEP    QUESTION";: INPUT B$
  182. 1830  IF B$ = ""  THEN 1850
  183. 1840 T$(1,I) = B$
  184. 1850  FOR J = 2 TO 5
  185. 1860  HOME 
  186. 1870  PRINT J -1;")  ";T$(J,I)
  187. 1880  PRINT 
  188. 1890  PRINT "TYPE IN ANSWER #";J -1;" OR <RETURN> TO  KEEP ANSWER.";: INPUT B$
  189. 1900  IF B$ = ""  THEN 1920
  190. 1910 T$(J,I) = B$
  191. 1920  NEXT J
  192. 1930  HOME 
  193. 1940  GOSUB 2220
  194. 1950  PRINT 
  195. 1960  HTAB 10: PRINT "ANSWER - ";T$(6,I)
  196. 1970  PRINT 
  197. 1980  PRINT "TYPE IN THE CORRECT ANSWERS NUMBER OR   <RETURN> TO KEEP CORRECT ANSWER";: INPUT B$
  198. 1990  IF B$ = ""  THEN 2030
  199. 2000  IF B$ = "1"  OR B$ = "2"  OR B$ = "3"  OR B$ = "4"  THEN 2020
  200. 2010  GOTO 1930
  201. 2020 T$(6,I) = B$
  202. 2030  NEXT I
  203. 2040  HOME 
  204. 2050  VTAB 5: PRINT "YOUR EDITED QUIZ IS NOW BEING SAVED."
  205. 2060  GOSUB 2400
  206. 2070  VTAB 24: INVERSE : PRINT "HIT ANY KEY TO CONTINUE";: GET XX$
  207. 2080  GOTO 240
  208. 2090 D$ =  CHR$(4)
  209. 2095  PRINT D$;"VERIFY QUIZ:";Q$
  210. 2100  PRINT D$;"OPEN QUIZ:";Q$
  211. 2110  PRINT D$;"READ QUIZ:";Q$
  212. 2120  FOR I = 1 TO 20
  213. 2130  FOR J = 1 TO 6
  214. 2140  INPUT T$(J,I)
  215. 2150  NEXT J
  216. 2160  NEXT I
  217. 2170  FOR K = 1 TO 5
  218. 2180  INPUT F$(K)
  219. 2190  NEXT K
  220. 2200  PRINT D$;"CLOSE QUIZ:";Q$
  221. 2210  RETURN 
  222. 2220  VTAB 7
  223. 2230  PRINT "QUESTION #";I
  224. 2240  PRINT 
  225. 2250  GOSUB 2320
  226. 2260  PRINT 
  227. 2270  FOR J = 2 TO 5
  228. 2280  PRINT 
  229. 2290  HTAB 5: PRINT J -1;")  ";T$(J,I)
  230. 2300  NEXT J
  231. 2310  RETURN 
  232. 2320 P$ = T$(1,I)
  233. 2330  IF  LEN(P$) <40  THEN  PRINT P$;: GOTO 2370
  234. 2340  FOR K = 39 TO 1  STEP  -1
  235. 2350  IF  MID$ (P$,K,1) = " "  THEN  PRINT  LEFT$(P$,K):P$ =  RIGHT$(P$, LEN(P$) -K): GOTO 2330
  236. 2360  NEXT K
  237. 2370  IF  RIGHT$(P$,1) = "?"  THEN 2390
  238. 2380  PRINT " ?"
  239. 2390  RETURN 
  240. 2400 D$ =  CHR$(4)
  241. 2410  PRINT D$;"OPEN QUIZ:";Q$
  242. 2420  PRINT D$;"DELETE QUIZ:";Q$
  243. 2430  PRINT D$;"OPEN QUIZ:";Q$
  244. 2440  PRINT D$;"WRITE QUIZ:";Q$
  245. 2450  FOR I = 1 TO 20
  246. 2460  FOR J = 1 TO 6
  247. 2470  PRINT T$(J,I)
  248. 2480  NEXT J
  249. 2490  NEXT I
  250. 2500  FOR N = 1 TO 5
  251. 2510  PRINT F$(N)
  252. 2520  NEXT N
  253. 2530  PRINT D$;"CLOSE QUIZ:";Q$
  254. 2540  RETURN